#pragma once

#include <AVUIContentControl.h>
#include <AVUIPanel.h>

namespace AVUI {

class Page : public ContentControl
{
public:
    Page() { };
    ~Page() { };

    DECLARE_ELEMENT(Page, ContentControl);


    DECLARE_DEPENDENCY_PROPERTY(Background);
    TRefCountedPtr<Brush> get_Background() { return (Brush*)(Object*)GetValue(get_BackgroundProperty()); }
    void set_Background(Brush* pValue) { SetValue(get_BackgroundProperty(), (Object*)pValue); } 

    DECLARE_DEPENDENCY_PROPERTY(WindowTitle);
    TRefCountedPtr<String> get_WindowTitle() { return (String*)(Object*)GetValue(get_WindowTitleProperty()); }
    void set_WindowTitle(String* pValue) { return SetValue(get_WindowTitleProperty(), (Object*)pValue); }

    DECLARE_DEPENDENCY_PROPERTY(WindowWidth);
    float get_WindowWidth() { return AVUI::UnboxValue<float>(GetValue(get_WindowWidthProperty())); }
    void set_WindowWidth(float value) { SetValue(get_WindowWidthProperty(), AVUI::BoxValue(value)); } 

    DECLARE_DEPENDENCY_PROPERTY(WindowHeight);
    float get_WindowHeight() { return AVUI::UnboxValue<float>(GetValue(get_WindowHeightProperty())); }
    void set_WindowHeight(float value) { SetValue(get_WindowHeightProperty(), AVUI::BoxValue(value)); } 

private:
    static void StaticConstructor();    

};


}; // namespace AVUI
